The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Many applications allow a user to print data using a printer. In order to avoid making each application aware of the technical details of each printer model that the application supports, many clients that execute applications make use of a printer driver. A printer driver is a unit of software that is installed on a client. The printer driver is responsible for converting the data to be printed into a form readable by a particular printer model, thereby alleviating the application from the responsibility of converting the data to be printed into a form understandable by the printer. Installation of a printer driver typically involves registering the printer driver with the operating system of the client.
To illustrate how a printer driver works, when a user instructs an application to print an electronic document to a particular printer, the application may make a call to the operating system of the client. The operating system, in turn, may use the printer driver associated with the particular printer to convert the electronic document into a form readable by the particular printer. The converted electronic document contains configuration data that identifies, to the particular printer, how the user wishes to print the document. Thereafter, the client machine sends the converted electronic document to the printer. Because the converted electronic document is rendered in a form which the particular printer can process, the particular printer can print a copy of the converted electronic document in accordance with the configuration data contained therein.
There are several disadvantages associated with client-side printer drivers. To allow a client to print to a particular printer model, the manufacturer of the printer model must make a printer driver available that the client can use. Typically, this involves making a printer driver available for the operating system used by the client. However, given the resources involved in generating printer drivers, it may not be cost-effective for the manufacturer to make a printer driver available for each type of operating system. For example, some printer manufacturers do not make available printer drivers for clients executing the Linux operating system. As a result, clients executing the Linux operating system cannot print to those printers.
Even if a printer driver is available, the printer driver must still be installed on the client. Installing a printer driver requires a level of expertise that may be beyond that of a typical user. Additionally, installing a printer driver requires a certain amount of time and effort, which, when aggregated over a large number of installations, may also lead to significant cost and frustration.
Consequently, an approach for printing electronic documents from clients, without incurring the aforementioned disadvantageous, is desirable.